/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import dao.TelefoneJpaController;
import dao.CursoJpaController;
import java.util.List;
import pagecontroller.JsfUtil;
import java.util.ArrayList;
import modelo.Telefone;
import modelo.Curso;
import modelo.SituacaoAluno;
import modelo.TipoCurso;
import modelo.TipoTelefone;
import pagecontroller.PageManager;

/**
 *
 * @author Dirac
 */
public class TelefoneController {

    public TelefoneController() {
        //FacesContext facesContext = FacesContext.getCurrentInstance();
        if (JsfUtil.getObjectFromSession("TelefoneJpaController") == null) {
            jpaController = new TelefoneJpaController();
        } else {
            jpaController = (TelefoneJpaController) JsfUtil.getObjectFromSession("TelefoneJpaController");
        }
    }
    private Telefone telefone = null;
    private List<Telefone> telefones = null;
    private TelefoneJpaController jpaController = null;
    private List<SituacaoAluno> situacoes = null;
    private List<Curso> cursos = null;
    private TipoCurso tipoCurso;

    public Telefone getTelefone() {
        if (telefone == null) {
            telefone = new Telefone();
        }
        return telefone;
    }

    public List<Telefone> getTelefones() {
        this.telefones = jpaController.findTelefoneEntities();
        return this.telefones;
    }

    public List<SituacaoAluno> getSituacoes() {
        this.situacoes = new ArrayList<SituacaoAluno>();
        for (SituacaoAluno situacao : SituacaoAluno.values()) {
            this.situacoes.add(situacao);
        }
        return this.situacoes;
    }

    public List<Curso> getCursos() {
        CursoController cursoController = new CursoController();
        CursoJpaController cursoJpaController = cursoController.getJpaController();
        if (tipoCurso == null) {
            cursos = cursoJpaController.findCursoEntities();
        }else{
            cursos = cursoJpaController.findByTipoCurso(tipoCurso);
        }
        return cursos;

    }

    public TelefoneJpaController getJpaController() {
        return jpaController;
    }

    public TipoCurso getTipoCurso() {
        return tipoCurso;
    }

    public void setTipoCurso(TipoCurso tipoCurso) {
        this.tipoCurso = tipoCurso;
    }

    public String load() {
        telefone = (Telefone) JsfUtil.getObjectFromRequestParameter("arq");
        PageManager pm = (PageManager) JsfUtil.getObjectFromSession("PageManager");
        pm.setPageRelatArquivo();
        return "refreshPage";
    }
    
   public List<TipoTelefone> tiposTelefone(){
       return TipoTelefone.getList();
    }
   

   public static List<TipoTelefone> getList(){
        List<TipoTelefone> lista = new ArrayList<TipoTelefone>();
        for (TipoTelefone tipoTelefone : TipoTelefone.values()) {
            lista.add(tipoTelefone);
        }
        return lista;

    }

}
